﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using DiskInspector.Model.MetaDataAttributes;

namespace DiskInspector.Model.FileRecordStructure
{
    public class FileNameAttributeContent : AttributeContent
    {
        public const int Length = 66;

        [FieldLength(ByteLength = 8)]
        public long FileReferenceToParentDirectory { get; set; }
        
        [FieldLength(ByteLength = 8)]
        public long FileCreationTime { get; set; }

        [FieldLength(ByteLength = 8)]
        public long FileModificationTime { get; set; }

        [FieldLength(ByteLength = 8)]
        public long MFTModificationTime { get; set; }
        
        [FieldLength(ByteLength = 8)]
        public long FileAccessTime { get; set; }

        [FieldLength(ByteLength = 8)]
        public long AllocatedSizeOfFile { get; set; }

        [FieldLength(ByteLength = 8)]
        public long RealSizeOfFile { get; set; }

        [FieldLength(ByteLength = 4)]
        public int Flags { get; set; }

        [FieldLength(ByteLength = 4)]
        public int UsedByEAsAndReparse { get; set; }

        [FieldLength(ByteLength = 1)]
        public byte FileNameLength { get; set; }

        [FieldLength(ByteLength = 1)]
        public byte FileNameNamespace { get; set; }

        public string FileName { get; set; }
    }
}
